{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### EAO - easy and straight forward optimization of energy setups" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Import required packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import eaopack as eao\n", "import pandas as pd\n", "import datetime as dt\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Load data & make assumptions\n", "In this case we load a year of hourly power market data for Germany. Downloaded from smard.de (Bundesnetzagentur | SMARD.de); 01/11/2023 - 01/11/2024. We will use day ahead prices as well as PV production profiles. In addition we will use a standard load profile of German commercial consumers.\n", "\n", "We make some basic assumptions on grid fees for commercial consumers (actual example for 2025 in the medium voltage grid) and define the characteristics on site: yearly consumption, own PV and battery." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data = pd.read_excel('DE_dataset.xlsx')\n", "data.set_index('Date', inplace=True)\n", "\n", "### at > 2500 FLH\n", "grid_fees = {}\n", "grid_fees['fix'] = 166000 # €/MW\n", "grid_fees['var'] = 13 # €/MWh\n", "\n", "######################### settings\n", "cons = 500 # MWh # total consumption per year (scaling the profile)\n", "cap_pv = 0.25 # MW (1000 flh) capacity of the on-site PV\n", "battery_data = {} # capacity, size and efficiency of an on-site battery\n", "battery_data['cap'] = .25 # 250 kW\n", "battery_data['size'] = 2 * battery_data['cap'] # 2 hours\n", "battery_data['eff'] = 0.9 # 90% cycle efficiency" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the actual optimization we need to do some settings: Defining the time grid for optimization and defining which data to use in our assets." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "######## prepare everything\n", "## basics\n", "S = dt.date(2023,11,1)\n", "E = dt.date(2024,11,1)\n", "timegrid = eao.Timegrid(S, E, freq = 'h') # hourly\n", "\n", "## settings\n", "input_ts = pd.DataFrame()\n", "input_ts['cons'] = -data['SLP gewerbe']*cons\n", "input_ts['pv'] = data['pv profile']*cap_pv\n", "input_ts['price'] = data['price dah']\n", "\n", "# cast to timegrid\n", "input_ts = timegrid.prices_to_grid(input_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we define the structure of our optimization problem -- our portfolio. The assets may be physical assets such as the battery or contracts such as supply via the grid." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "### Structural setup, distinguishing own assets and supply from the grid\n", "behind_meter = eao.Node('behind meter')\n", "front_of_meter = eao.Node('front of meter')\n", "\n", "### Here: No flexibility in our consumption. Easily changed by adjusting min_cap/max_cap\n", "consumption = eao.assets.SimpleContract(name = 'consumption', \n", " nodes = behind_meter,\n", " min_cap = 'cons',\n", " max_cap = 'cons')\n", "### Our own PV module. Also here without flexibility -- easily changed\n", "pv = eao.assets.SimpleContract(name = 'pv', \n", " nodes = behind_meter,\n", " min_cap = 'pv',\n", " max_cap = 'pv')\n", "### An on-site battery constituting out flexibility\n", "battery = eao.assets.Storage( name = 'battery',\n", " nodes = behind_meter,\n", " cap_in = battery_data['cap'],\n", " cap_out = battery_data['cap'], \n", " eff_in = battery_data['eff'],\n", " size = battery_data['size'],\n", " start_level= 0.5 * battery_data['size'],\n", " end_level = 0.5 * battery_data['size'],\n", " block_size = 'd', # daily optimization of battery (leaving it 1/2 full every day)\n", " no_simult_in_out = False) # Important: The battery may now charge and discharge at the same time and\n", " # \"burn\" power due to efficiency < 100%. This makes computation much faster (no MIP)\n", "\n", "### Supply via the grid. Note that we enabling scaling the grid connection -- since grid fees \n", "# apply on a yearly basis for the maximum load (which we will minimize utilizing our battery)\n", "supply = eao.assets.SimpleContract( name = 'supply', \n", " nodes = front_of_meter, \n", " price = 'price',\n", " extra_costs = .5, # fee from supplier\n", " min_cap = 0,\n", " max_cap = 1)\n", "grid_feedin = eao.assets.Transport( name = 'grid_out', # unlimited feed in capacity\n", " nodes = [behind_meter, front_of_meter],\n", " min_cap = 0,\n", " max_cap = 1)\n", "grid_consumption_normed = eao.assets.Transport(name = 'grid_in_normed', \n", " nodes = [front_of_meter, behind_meter],\n", " costs_const = grid_fees['var'], # variable grid fees\n", " min_cap= 0,\n", " max_cap= 1) # normed capacity (to 1 MW)\n", "grid_consumption = eao.assets.ScaledAsset(name = 'grid_in',\n", " base_asset = grid_consumption_normed,\n", " max_scale = 1000,\n", " fix_costs = grid_fees['fix']/8760) # yearly fix capacity costs (here scaled to hourly as main time unit)\n", "### We can feed in our PV own production - here at day ahead prices. If there are feed-in tariffs, price can easily be changed\n", "feedin = eao.assets.SimpleContract(name = 'feedin', \n", " nodes = front_of_meter, \n", " price = 'price', # assuming no feed in tariff\n", " min_cap = -1000,\n", " max_cap = 0)\n", "portf = eao.Portfolio([supply, consumption, grid_feedin, grid_consumption, pv, feedin, battery])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is how the portfolio looks like. See below. We could set it up in a simpler way (without distinction into in-front-of-the-meter and behind-the-meter). However, this way everything becomes very explicit in formulation as well as later analysis." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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xAkd2PGV3Rk/AoK4uDgpV66c9OjRQ4oUKWK34yXKLywgJCK3hPOgP/74QwMBdBdEm2FrUv8IGFA7cPbsWd3QCLsaEjk7BgNE5JYOHTokR44ckYCAgBx3FjSKCk+fPi379u3Lt2MkshcGA0TkdrAL4Z9//qmZAF9f31zdBwIIBAV79uyRhIQEmx8jkT0xGCAit3Pq1CldOoisQF7g9rGxsXL06FGbHRuRIzAYICK3XEaIFQI4s88LY8UB6geInBmDASJyO5cuXbotEBg2bJjMnz9fJk+eLM8884yEhYXp5UuXLpVZs2aZr4cpgUcffVSio6PN0wUXL17UgkQiZ8VggIjcDlL76BeQkbffflsmTZok3333nUREREj79u1l27Zt2o0Qtm7dqo2HsAIBcD/oT4A6BCJnxWCAiOiWzp076/fSpUvrlsXh4eHahrhy5cqya9cu/dmGDRukY8eOt92WHQnJmTEYICK3g7N6a87kjQG+U6dO2pMA0wH4atSokfk6uB/0Hsgs00DkDBgMEJHbCQkJybBZEAZ8wPQA+hAgOwDNmzeXY8eOyfLly6Vdu3ZpBn5MHyCTwMwAOTNuVEREbgcbDqE/AOb6LbcnxgoDFBCiTfGDDz4opUqVMhcJYi8CtC5+7733zNdHQIEgoGLFig55HkS2wr0JiMjtYNBftGiRZgCKFStmXk3w9ddf52ivAfQqCAwMlPvuuy/HXQyJChJOExCR20F/gJYtW2q6H5sO5QayBziXatGiBQMBcnrMDBCRW8JH36ZNm2Tv3r26SRG2LbYWpheuX7+uWxl369aN9QLk9FgzQERuCQN469attQAQSwgxwCPln9XAjgACPQpw3erVq+sSQwYC5AqYGSAicff6gQMHDsiOHTskJiZGCwqRJUDqHwM9PiIRMGBaAF9YRti0aVNp2LBhntsZExUUDAaIiETk2rVrupwQX6gjQP8A4+MRgz4ChJo1a+rUABoREbkSBgNERBawXBCrBPCFgABFhsHBwbrqgJkAclUMBoiIiNwclxYSERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDREREbo7BABERkZtjMEBEROTmGAwQERG5OQYDRERE4t7+HxnBp4Twc53tAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "eao.network_graphs.create_graph(portf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Optimization\n", "\n", "The actual optimization is very simple. We collect all assets in the portfolio object and go. \"extract_output\" will generate straight-forward tables that can also be exported to Excel. Note that we are optimizing a full year on an hourly basis including a battery. This takes ~1 min." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Values\n", "Parameter \n", "status successful\n", "value -29974.687926\n" ] } ], "source": [ "out = eao.optimize(portf=portf, timegrid=timegrid, data=input_ts)\n", "print(out['summary'])\n", "eao.io.output_to_file(output=out, file_name='test.xlsx') ### All details. Have look into the file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Defining the benchmark to calculate the value of the battery: The same portfolio without the battery" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "portf_benchmark = eao.portfolio.Portfolio([supply, consumption, grid_feedin, grid_consumption, pv, feedin])\n", "out_benchmark = eao.optimize(portf=portf_benchmark, timegrid=timegrid, data=input_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Interpretation of the results\n", "\n", "Let us analyze the overall costs with and without battery and look into the dispatch behaviour" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overall costs with battery: 29975\n", "Overall costs without battery: 49494\n", "So the battery saved us: 19519\n" ] } ], "source": [ "print('Overall costs with battery: '+ str(round(-out['summary'].loc['value', 'Values'])))\n", "print('Overall costs without battery: '+ str(round(-out_benchmark['summary'].loc['value', 'Values'])))\n", "print('So the battery saved us: '+ str(round(out['summary'].loc['value', 'Values'] - out_benchmark['summary'].loc['value', 'Values'])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a significant saving. But where does the saving come from? Let us look into the details, starting with the overall quantities. See below. Note how quantities are always balanced at nodes. Transport always balances as well -- transporting from one node to the other.\n", "\n", "Check out the output \"out\" in detail. It contains detailed dispatch, cash flows and internal variables such as battery fill levels." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Quantities (MWh) with battery:\n", ".................................... \n", "supply (front of meter) 376.0\n", "consumption (behind meter) -500.0\n", "grid_out (behind meter) -103.0\n", "grid_out (front of meter) 103.0\n", "grid_in (front of meter) -376.0\n", "grid_in (behind meter) 376.0\n", "pv (behind meter) 250.0\n", "feedin (front of meter) -103.0\n", "battery (behind meter) -23.0\n", "dtype: float64\n", "\n", "Quantities (MWh) without battery:\n", ".................................... \n", "supply (front of meter) 310.0\n", "consumption (behind meter) -500.0\n", "grid_out (behind meter) -60.0\n", "grid_out (front of meter) 60.0\n", "grid_in (front of meter) -310.0\n", "grid_in (behind meter) 310.0\n", "pv (behind meter) 250.0\n", "feedin (front of meter) -60.0\n", "dtype: float64\n" ] } ], "source": [ "print('Quantities (MWh) with battery:\\n.................................... \\n'+str(round(out['dispatch'].sum())))\n", "print()\n", "print('Quantities (MWh) without battery:\\n.................................... \\n'+str(round(out_benchmark['dispatch'].sum())))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Costs (EUR) with battery:\n", ".................................... \n", "supply -26178.0\n", "consumption 0.0\n", "grid_out 0.0\n", "grid_in -15948.0\n", "pv 0.0\n", "feedin 12152.0\n", "battery 0.0\n", "dtype: float64\n", "Total: -29975.0\n", "\n", "Costs (EUR) without battery:\n", ".................................... \n", "supply -27711.0\n", "consumption 0.0\n", "grid_out 0.0\n", "grid_in -22788.0\n", "pv 0.0\n", "feedin 1006.0\n", "dtype: float64\n", "Total: -49494.0\n", "\n" ] } ], "source": [ "print('Costs (EUR) with battery:\\n.................................... \\n'+str(round(out['DCF'].sum())))\n", "print('Total: '+ str(out['DCF'].sum().sum().round())+'\\n')\n", "print('Costs (EUR) without battery:\\n.................................... \\n'+str(round(out_benchmark['DCF'].sum())))\n", "print('Total: '+ str(out_benchmark['DCF'].sum().sum().round())+'\\n')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two contributions:\n", "* supply & PV: we are utilizing the battery to maximize own consumption, mainly to avoid variable grid fees\n", "* battery & grid: we try to minimize peak load (capacity fee)\n", "* battery arbitrage: utilizing the battery to consume from grid in cheap hours and feed in in expensive hours\n", "\n", "Everything is optimized in a consistent manner in one go!\n", "\n", "The grid connection is a special case: Besides avoiding variable grid fees, we're sizing the capacity over the course of the year, utilizing the battery to reduce peaks. Here the results. \"Value\" gives the required capacity:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Grid fixed costs (EUR) with battery:\n", ".................................................. \n", " asset variable name value costs\n", "0 grid_in size scale 0.066 11058.95\n", "\n", "Grid fixed costs (EUR) without battery:\n", ".................................................. \n", " asset variable name value costs\n", "0 grid_in size scale 0.113 18754.337\n" ] } ], "source": [ "print('Grid fixed costs (EUR) with battery:\\n.................................................. \\n'+str(out['special'].round(3))+'\\n')\n", "print('Grid fixed costs (EUR) without battery:\\n.................................................. \\n'+str(out_benchmark['special'].round(3)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Another benchmark: Own PV\n", "To make the picture more complete, let us add another step in the benchmark: to compute the value of the own PV (i.e. a portfolio without PV and battery as the overall starting point)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "portf_start = eao.portfolio.Portfolio([supply, consumption, grid_feedin, grid_consumption, feedin])\n", "out_start = eao.optimize(portf=portf_start, timegrid=timegrid, data=input_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Putting everything together\n", "\n", "Let us now put all the data together to analyze the effects of our PV and battery assets. Naturally, we could also do this in Excel, using the output generated by the optimization. This may feel more natural to many users." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "## bookkeeping - looking at cost components in different scenarios. Attention - costs are negative numbers\n", "start = -out_start['summary'].loc['value', 'Values'] # no assets\n", "with_pv = -out_benchmark['summary'].loc['value', 'Values'] # PV, no battery\n", "saving_supply = -((out_benchmark['DCF']['supply'].sum() + out_benchmark['DCF']['feedin'].sum())- (out['DCF']['supply'].sum() + out['DCF']['feedin'].sum()))\n", "saving_grid = -(out_benchmark['DCF']['grid_in'].sum() - out['DCF']['grid_in'].sum())" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAHFCAYAAACdNzqqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6Q0lEQVR4nO3dCbxM9f/H8c+1b9nJvhSFbJGk3S9R2rQo8Ysk/VOylUJFKhEtVEq7FgqVFi2yZPnZl5QlUogQKkuRff6P9/d2xszcmXvncq/j3vt6Ph7jmjnfOXO2OXM+5/v9fr4JgUAgYAAAAACA4y7b8f9IAAAAAIAQkAEAAACATwjIAAAAAMAnBGQAAAAA4BMCMgAAAADwCQEZAAAAAPiEgAwAAAAAfEJABgAAAAA+ISADAAAAAJ8QkAFpoFKlSpaQkBD2yJ07t5UrV86uueYamzBhgi/Ls27dOvPDyJEj3effeuutvnw+cKJ75JFH3HdEf1NL3yu9V98zxKbzX+R5WY/8+fNb9erVrXPnzrZ27dpg+b59+7rp55xzTlzzHz9+vCtftGhR27t3r2U0R3McHctxCyA2AjIgDZ133nnWrl0792jevLnlyJHDPv30U7vqqqusR48efi8ekOlMmzbNXSBefPHFlhlktvU5UVx//fXBc/O5555rGzdutOHDh1vt2rVt5syZrkz79u3dtp83b56tWLEixXm+8cYb7m+bNm0sT5486b4OWVE8QaPfNyCBtJAjTeYCwLn99tvDaoUOHjxo3bt3txdeeMGeffZZu/nmm61BgwaW2V177bXuLnOhQoX8XhTghKTamVatWlnx4sX9XpQs4amnnnIX7p7Nmze7m2ZLlixxQdqPP/5olStXtv/85z82ZcoUF2zpPbH89ttv9tVXX7n/d+jQ4bisA4DMixoyIB2phmzIkCFWsGBB9/yzzz6zrECBWLVq1ax06dJ+LwpwQlIgpu8IAZk/dG7STTJRs8WFCxeGBVfvvvuuu6EWy9tvv+2mn3nmmVa3bt3jtNQAMisCMiCdqSlL1apV3f+3bNkStYzuyF533XXuIiFXrlxWsmRJV8s0Z86cmPNVk5qWLVu6C7q8efNazZo13R3dQ4cOxXyP14ciFjWT0nQ1m4oUCATso48+siuvvNJKlSrlllN/zz//fHvyySftn3/+SbEPWWhzrAMHDrj3nXHGGW75ixUr5rbBDz/8EHP5/ve//9lll11mhQsXtgIFCrjaRl0YxbNuKTV1UX8QrYuC55NOOskt4xdffBHzvXv27LFBgwZZvXr1XPl8+fK5dXnooYds+/btYWV37Nhh2bNntyJFitjhw4fDpo0dOza47JGft2/fPjdfHUOh21d0Mfjaa6+55VQfFvVZ1B3+Tp062YYNG5Isb+i217Krv4z60Wj+oTUHKdHnqvagSZMm7tjz+krq+fPPPx+1/IgRI1wzMQXq3vehS5curtlYNKtXr7bbbrvNrY/mr31dsWJFu+KKK+zNN98MltO6NG7c2P1/+vTpYf2EQtdJ21E3RurXr+/2lXfs6vi5//777c8//4xr3bWvNe/FixeHvb5161bLli2bm6b5RVKti6ZNnTo12b448a5PKAUTt9xyi1sfbatTTz3VHYNa56MxceJE9x3XOUjbqUyZMnbTTTcFA5ZQ+r5q2XReiNzn2teaduONNyZ5n/atpnlN/iK3x7Zt2+zuu++28uXLu2XQ33vuucd9j9KSjgeP19xN66Tvk87Vn3/+ecz3esdhamrH/vrrL3v11VfdZ+g7oL5setSqVcsefPDBmOsXep765ptvrGnTpu5covOmjknvHBiNju1u3bq574+OjwoVKrja2XiP+eT88ssv1rZtW/e7pe/1aaed5vZf5LlKdL5XkKvmnboRofOslv/0009354JNmzZF7f/31ltvhTUn9R76HO93RsshOl+Elon8HdNnqOuAd97TuUDnALVgiRZ8hzaXXLZsmfseaF11Ltfn9+vXz03/v//7v5jbaP78+a5M2bJlkw3wAV1kAThGFStWDOjr9Oabb0adXrVqVTf94YcfTjLt3nvvddOyZcsWOPvsswMtW7YMNGzYMJCQkBDInj174I033kjynpkzZwby58/v3nfKKacEWrVqFWjSpEkgZ86cgeuvvz64PGvXrg17n15L7mt/0UUXuenffPNN2Ov79+8PXHfddcHlPOeccwI333xz4NJLLw2ULVs2yWdpO+i1du3ahc1H89Xr5557rlvefPnyBS677DK3zOXLl3fTChcunGS55b333nOfrTK1atVyn3/hhRe61x544IEU1y0abzt1797d/T3rrLPcfLUfvPk999xzSd73xx9/BOrWreumFyxYMHD11Ve7dShevLh7rXLlyknWoUGDBm7a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k+mGmjPhoCUkJK7PoUB2OxRIm7I5Eg5atqMqm82yJ8RetxMaARkAAJk2NqCGDDhKoUFPLKHBWVqWDe1X51vZbOq7Fbv/VqjsCYfcw9+yGTQYAwAAmRpZFgEAAADAJwRkAAAAAOATAjIAAAAA8AkBGQAAAAD4hIAMAAAAAHxCQAYAAAAAPiEgAwAAAACfEJABAAAAgE8IyAAAAADAJwRkAAAAAOATAjIAAAAA8AkBGQAAAABk1YBs48aN9t///teKFStmefPmtVq1atnChQuD0wOBgPXt29dKly7tpjdp0sRWr14dNo8///zT2rRpYwULFrTChQtbhw4d7O+//w4r8/3339sFF1xgefLksfLly9vgwYOTLMu4ceOsWrVqroyW44svvkjHNQcAAACQ1fkakG3fvt3OO+88y5kzp3355Ze2YsUKe/rpp61IkSLBMgqcnnvuORsxYoTNmzfP8ufPb82aNbO9e/cGyygYW758uU2aNMkmTJhgM2bMsDvuuCM4fdeuXda0aVOrWLGiLVq0yIYMGWKPPPKIvfLKK8Eys2fPtptvvtkFc99++621aNHCPZYtW3YctwgAAACArCQhoCoon/Tq1ctmzZplM2fOjDpdi1amTBm799577b777nOv7dy5004++WQbOXKktWrVyn744QerUaOGLViwwM466yxX5quvvrLmzZvbr7/+6t7/0ksv2YMPPmi//fab5cqVK/jZH3/8sa1cudI9v+mmm2z37t0uoPOcc845VrduXRcMpkRBX6FChdzyqabueOvfv/9x/8ysrl+/fpYljU7wewmynta+naYBAMBRSE1s4GsN2aeffuqCqJYtW1rJkiXtzDPPtFdffTU4fe3atS6IUjNFj1asYcOGNmfOHPdcf9VM0QvGROWzZcvmatS8MhdeeGEwGBPVsq1atcrV0nllQj/HK+N9TqR9+/a5DR36AAAAAIDU8DUgW7Nmjau9qlq1qk2cONE6depkXbp0sbfeestNVzAmqhELpefeNP1VMBcqR44cVrRo0bAy0eYR+hmxynjTIw0cONAFh95D/dIAAAAAIMMEZIcPH7Z69erZE0884WrH1O+rY8eOcTUR9Fvv3r1dFaT32LBhg9+LBAAAACCD8TUgU+ZE9f8KVb16dVu/fr37f6lSpdzfLVu2hJXRc2+a/m7dujVs+sGDB13mxdAy0eYR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uXNb6dKl03PZAAAAACBTi7sPmajfWIECBdz/Dx48aCNHjrTixYuHlenSpUvaLiEAAAAAZPWArEKFCvbqq68Gn5cqVcreeeedsDKqOSMgAwAAAIA0DsjWrVsXb1EAAAAAwPEcGBoAAAAAkE41ZD169Ij6eqFChey0005zmReV6AMAAAAAkMYB2bfffhv19R07dthPP/1kDz/8sE2dOtX1NQMAAAAApGFA9s0338SctmvXLmvTpo316tXLRo8eHe8sAQAAACBLS5M+ZAULFnQ1ZLNmzUqL2QEAAABAlpBmST00Htmff/6ZVrMDAAAAgEwvzQKyuXPn2qmnnppWswMAAACATC/uPmTff/991Nd37txpixYtsieeeML69euXlssGAAAAAJla3AFZ3bp1LSEhwQKBQNTmikqLf9ddd6X18gEAAABAphV3QLZ27dqYCT2KFCmSlssEAAAAAFlC3AFZxYoV03dJAAAAACCLiTuph5oj/v3338Hn7733nu3evTtsgOjmzZun/RICAAAAQFYPyF5++WXbs2dP8Pn//d//2ZYtW4LP9+3bZxMnTkz7JQQAAACArB6QRSbziJbcAwAAAADgwzhkAAAAAIDUISADAAAAgBM9y6L07dvX8uXL5/6/f/9+GzBggBUqVMg9D+1fBgAAAABIw4DswgsvtFWrVgWfn3vuubZmzZokZQAAAAAAaRyQTZs2Ld6iAAAAAIA40IcMAAAAAHxCQAYAAAAAPiEgAwAAAACfEJABAAAAQFYPyAYNGmQJCQnWrVu34Gt79+61u+++24oVK2YFChSw66+/3rZs2RL2vvXr19sVV1zh0vGXLFnSevbsaQcPHkySkKRevXqWO3duq1Klio0cOTLJ5w8fPtwqVapkefLksYYNG9r8+fPTcW0BAAAAIJXjkHl27NjhApatW7fa4cOHw6a1bds21fNbsGCBvfzyy1a7du2w17t3726ff/65jRs3zo131rlzZ7vuuuts1qxZbvqhQ4dcMFaqVCmbPXu2bd682X1+zpw57YknnnBl1q5d68rceeedNmrUKJsyZYrdfvvtVrp0aWvWrJkrM2bMGOvRo4eNGDHCBWNDhw5105TmX0EeAAAAAKSHhEAgEEjNGz777DNr06aN/f3331awYEFXqxWcWUKC/fnnn6laAM1HtVcvvviiPf7441a3bl0XEO3cudNKlChho0ePthtuuMGVXblypVWvXt3mzJlj55xzjn355Zd25ZVX2qZNm+zkk092ZRRUPfDAA7Zt2zbLlSuX+7+CumXLlgU/s1WrVi6o/Oqrr9xzBWENGjSwF154wT1XkFm+fHm75557rFevXnGtx65du1zQqOXWdjne+vfvf9w/M6vr16+f34sAZG6jj/y+4DhpnapLAgBAGsQGqW6yeO+999ptt93mAikFNdu3bw8+UhuMiZokqgarSZMmYa8vWrTIDhw4EPZ6tWrVrEKFCi4gE/2tVatWMBgT1WxpAyxfvjxYJnLeKuPNY//+/e6zQstky5bNPffKAAAAAMAJ0WRx48aN1qVLF9dn61i9//77tnjxYtdkMdJvv/3margKFy4c9rqCL03zyoQGY950b1pyZRS0/fPPPy6QVNPHaGVUIxfLvn373MOj+QEAAABAaqS6hky1SwsXLrRjtWHDBuvatavr16VEGhnNwIEDXTWk91ATRwAAAABI1xoyNS9UJsMVK1a45oJKoBHq6quvjms+aiaopCDqP+ZRTdWMGTNcX66JEye65oRqFhlaS6Ysi0riIfobmQ3Ry8IYWiYyM6Oeqy1n3rx5LXv27O4RrYw3j2h69+7tEoGE1pARlAEAAABI14CsY8eO7u+jjz6aZJqSeiioiscll1xiS5cuDXutffv2rp+YEnEouFGwp6yISncvynqoNPeNGjVyz/V3wIABLrDzsiFOmjTJBVs1atQIlvniiy/CPkdlvHmoWWT9+vXd57Ro0SKY1EPPldUxFqXQ1wMAAAAAjltAFpnm/middNJJVrNmzbDX8ufP78Yc817v0KGDq4UqWrSoC7KU9VCBlDIsStOmTV3gdcstt9jgwYNdf7GHHnrIJQrxgiWlu1eN2/333++SkUydOtXGjh3rMi969Bnt2rWzs846y84++2yX5XH37t0uQAQAZG4fLTAbMdls0TqzP/82+3aAWd1KR6brtX4fmn291Gz972YlCpq1qG/2WEuzQil0p/5ho9kD75tN/8Hs4GGzGmXNPuxqVqG42bptZpWPDL0ZZmwXs5YNE/8/ZZnZwx+YLd1glj+3WbsLzAbcaJYjexpuBABAxhqH7Hh59tlnXcZD1ZApgYb6ryk9vkdNDSdMmGCdOnVygZoCOgVWobV3lStXdsGXxjQbNmyYlStXzl577bXgGGRy0003uTT5ffv2dUGdUu8rJX5kog8AQOaze6/Z+aeb3XiOWcfXkk7ftD3x8VTrxIDql9/N7nwj8bUPYgRU8vMWs/MfNetwkVn/680K5jVb/qtZnn9b+pcvZrZ5ePh7XplqNuRzs8vrJD7/7hez5kPMHrzG7O07zTZuT/zsQ4fNnmqTllsBAHBCj0P23HPP2R133OGSb+j/yVEGxqyIcciyHsYhAzLXOGRejVVkDVk04+aZ/fdFs91vxK6pavW8Wc7sZu/cFf8ynNnHrF4ls9fvSHzeZ4zZpGVmCx47UuazxWY3Pme29SWzk/Ja2mIcMgA47rFBjnhrqjQYtAIy/T8W9SHLqgEZACDr2LknscYrVjCm1v2fLzG7/0qzZoPMvv3FrHIJs95Xm7U4K/p7Fq01W/KL2fBbj7y278CRGjVP3lxmew8klr84sbs0ACADiysgW7t2bdT/AwCQ1fz+l9lj483u+E/sMlt3mf2912zQZ2aPtzR7spXZV9+bXTfU7JsHzS6qnvQ9r08zq17G7NzTjrzWrLbZ0K/M3pud2KTytx1mj36UOG3zjnRYOQDAiT8OGQAAGdWoWWYFbjvymLkyde/ftcfsiiGJfckeuS52ucP/tvy7pp5Z98sTm0D2utrsyjPNRkxJWv6f/WajZ5t1uDj89aa1zYa0Tuw3lrud2Wn3mTWvmzgt2/Ft0QkAyIpJPQAASEtX1zNreOqR52WLxv/ev/4xu2yw2Ul5zMZ3N8uZzC9o8ZMSmzMqcAulGrD/rUpa/oN5Znv2mbW9IOm0Hs0TgzrViBXJn9jXrfcYs1MSR3sBAGRwBGQAgCxDSTCOJhGGasaaPWmWO6fZp/ea5cmVfPlcOcwanGK2anP46z/+ZlaxeNLyr09PDBaVUj+ahASzMkUS///enMQMjfUqp349AAAnHgIyAECWpnHGNL7Ypn/7ZHlBVKnCiQ8FY00Hme3Zb/buXWa7/kl8iAKo7DEa//e8wuym580urGbWuEZiHzJlSJz2UHi5n34zm7HS7Iue0eczZILZZbXNsmVLHDNt0KeJ45TF+lwAQMZCQAYAyNI+XWTW/pUjz1u9kPi333Vmj1xvtnid2byfE1+r0iP8vWuHmlUqkfj/Sl3Nbr0w8T1ybQOzEbeZDfzUrMvbZqeXThwUWmOehXpjulm5omZNa0Vfvi+/MxvwSWLGxToVzD7pYXb5v/3IAABZMCDTgMkFChSw888/3z0fPny4vfrqq1ajRg33/yJF/m1TAQBABnDrRYmPWJRaPjAq+Xmo/9eWnWYXR2RPvO3ixEdynrgp8RHL1AeTfz8AIGNLdYOHnj17uoHOZOnSpXbvvfda8+bNXTr8Hj0ibh0CAJAFfLPC7D9nMC4YAOA41JAp8FJtmHz44Yd25ZVX2hNPPGGLFy92gRkAAFnNFWcmPjz7D0eM5hwimwUsR7aDcZVNsIDlPMqyBw7ntEDMsmY5sx1IWnb//qRlExIsZ84jn3vgwAELBGLN2SxXrlxHVfbgwYN2WCNqp0FZLa+WOz3LHjp0yD3SomyOHDksmzoJHkXZ7NljjE4OIPMGZDoh7tmzx/1/8uTJ1rZtW/f/okWLBmvOAADIygb+HLudYdV8P1rrsqODz59a09MOBKKnbayYd53dWm5k8Pmwdd1sz6H8UcuWyb3ROlZ4Nfh8+C93286DhaOWLZFrq91V8cXg81c3dLRt+0uaDRyYpGyhQoWsW7duwecjR460TZs2RZ1vvnz5XEsaz6hRo+yXX36JGbD06dMn+Hzs2LG2evVqi6Vfv37B/48fP95WrFgRs2zv3r2DAdyECRPsu+++i1n2vvvus/z5E7fpxIkTbeHChTHLdu3a1QoXTtymU6ZMsTlz5sQs26lTJytZMnFsgpkzZ9r06dNjlr399tutbNnEMRLmzp3rrq9iadeunVWqVMn9f9GiRXb22WfHLAsgkwZk6jumponnnXeezZ8/38aMGeNe//HHH61cuXLpsYwAgKyodeyalRNe//6xp5W9wqx1SKe0J55QVVL0siUvMmv95pHnQ4aY/XtTNIliDcxah2QnGTrUbOfO6GULnRG+fV980WzbNsuyRv87yvZWtfRJJsD5pLJZzn/TcW671MzOi13285pmuf/dpn+oI2EynQknnm2W598gd/u5GhI8dtnJjc3yrUv8/44GZj8tsAwpI3+/gTSWEEiuLUEU69evt7vuuss2bNhgXbp0sQ4dOrjXu3fv7qrOn3vuOcuKVDuou4g7d+60ggVjDCSTjvon9+OPdBF6txYAQu2P0vTPo+ZmanYWT9nI5oKpKZtcc8H0Kpthmyy+l9gE8ODh7HY4me71ORMOWkJC4vocCmS3Q4G0KZsj4aBlO6qy2Sx7Qux1O6ERkCGT25WK2CDVNWQVKlRw1f+Rnn322dTOCgCATCk0ePCrbGgQlRHKhgapvpXNpr5bsftvhcqecMg9/C2bQYMxAMeWZVGdR7du3Zrk9T/++IOOpQAAAACQngFZrKYH+/btS9WdOwAAAADI6uKux/f6hqlN9muvveYGh/ao79iMGTOsWrVq6bOUAAAAAJCVAzKvj5hqyEaMGBHWPFE1Y0rBqtcBAAAAAGkckGlAaGncuLF99NFHVqRIkXjfCgAAAABIiz5k33zzTVgwpuaKS5Ysse3bt6d2VgAAAACQpaU6IOvWrZu9/vrrwWDswgsvtHr16ln58uVt2rRp6bGMAAAAAJAppTogGzdunNWpU8f9/7PPPrN169bZypUr3cDQDz74YHosIwAAAABkSqkOyDTeWKlSpdz/v/jiC2vZsqWddtppdtttt9nSpUvTYxkBAAAAIFNKdUB28skn24oVK1xzxa+++souvfRS9/qePXsYGBoAAAAA0iPLoqd9+/Z24403WunSpd2YZE2aNHGvz5s3j3HIAAAAACA9A7JHHnnEatasaRs2bHDNFXPnzu1eV+1Yr169Ujs7AAAAAMiyUh2QyQ033JDktXbt2qXF8gAAAABAlpHqPmQyffp0u+qqq6xKlSrucfXVV9vMmTPTfukAAAAAIBNLdUD27rvvun5j+fLlsy5durhH3rx57ZJLLrHRo0enz1ICAAAAQCaU6iaLAwYMsMGDB7txxzwKyp555hl77LHHrHXr1mm9jAAAAACQKaW6hmzNmjWuuWIkNVtcu3ZtWi0XAAAAAGR6qQ7Iypcvb1OmTEny+uTJk900AAAAAEA6NVm89957XRPFJUuW2LnnnutemzVrlo0cOdKGDRuW2tkBAAAAQJaV6oCsU6dOVqpUKXv66adt7Nix7rXq1avbmDFj7JprrkmPZQQAAACATOmoxiG79tpr3QMAAAAAcBz7kC1YsMDmzZuX5HW9tnDhwmNYFAAAAADIWlIdkN199922YcOGJK9v3LjRTQMAAEB8fthodvXTZoVuN8t/m1mDh83W/578e4Z+aXb6fWZ5bzUrf49Z93fM9u4/Mv2lyWa1e5kV7JD4aNTP7Msl4fP4eYvZtc+albgzscyNz5lt2Zk+64jjY+DAgdagQQM76aSTrGTJktaiRQtbtWpVWJmff/7ZtXIrUaKEFSxY0G688UbbsmVLsvP966+/rFu3blaxYkU39rBySKiCJlRCQkLUx5AhQ5LMb9++fVa3bl03XTkpcBQB2YoVK6xevXpJXj/zzDPdNAAAAKRMQdH5j5pVK2027SGz7weaPdzCLE/O2O8ZPcus1xizftea/TDE7PWOZmPmmvVJ7NbvlCtqNqiV2aIBZgsfN/vPGWbXPGO2/NfE6bv3mjUdZJZgZlP7mM3qZ7b/oNlVT5kdPpz+6430MX36dFc5MnfuXJs0aZIdOHDAmjZtart373bT9VfPFQhNnTrVJeXbv3+/G87qcDI7/vbbb3fze+edd2zp0qVuHk2aNHGVMZ7NmzeHPd544w33Oddff32S+d1///1WpkyZdNoKWaQPWe7cuV0kfcopp4S9ro2fI8dRdUkDAADIch4ca9a8jtng1kdeO/Xk5N8ze7XZeaeZtT4v8XmlEmY3NzKb9/ORMldF3DcfcGNirdncn8zOKGc260ezddvMvh1gVjBfYpm37jQrcofZ1BVmTWqm2SriOPrqq6/CnisDumrKFi1aZBdeeKELwNatW2fffvutqx2Tt956y4oUKeICNAVZkf755x/78MMP7ZNPPnHzkEceecQ+++wze+mll+zxxx93rynhXyiVb9y4cZJ44csvv7Svv/7azVP/x1HWkCkq7t27t+3ceaRee8eOHdanTx+79NJLUzs7AACALEcVEp8vMTuttFmzQWYlO5k17Gv2cQrd8c+tarZordn8fwOwNVvNvvjOrHnd6OUPHTZ7f47Z7n1mjaokvrbvoJqYmeUOqYlTrVy2BLP/hbdwQwbmXasXLVo02FRQtVaqXPHkyZPHsmXLZv/73/+izuPgwYN26NAhVy6Umi7Geo8qbj7//HPr0KFDktc7duzoatry5fv3TgCOLiB76qmnXB8ytSNV5KtH5cqV7bfffnOp8AEAAJC8rbvM/t5rNugzs8vqmH39gNm1Z5ldN9Rs+g+x36easUevNzu/v1nOtmandje7uLpZn4iRh5auNytwm1nudmZ3vmE2vrtZjXKJ086pYpY/t9kD75vt2ZfYhPG+0YnB2+Yd6bveOD7UBFH9vs477zyrWTOxyvOcc86x/Pnz2wMPPGB79uxxTRjvu+8+F3CppVs06o/WqFEje+yxx2zTpk2u7Lvvvmtz5syJ+R7Vuul91113XfC1QCBgt956q91555121llnpdNaZ6GArGzZsvb999/b4MGDrUaNGla/fn03ILTalJYvXz59lhIAACADGzUrMUDyHqv+vZa9pp5Z98vN6lYy63W12ZVnmo2YEns+01aYPfGp2YvtzRY/bvZRt8SatsfGh5c7vYzZkifM5j1q1ukSs3YjzFb824esREGzcV3MPltsVqCDWaGOZjt2m9WrlFhLhoxPfcmWLVtm77//fvA1JfIYN26ca25YoEABK1SokGvlptwQqiWLRTVaCqgUA6h27bnnnrObb7455nvUf6xNmzZhtWrPP/+8Sw6iVnZI6qg6fSm6vuOOO47mrQAAAFnO1fXMGp565LmCohzZzWqUDS9XvUzyzQYf/sDslvPNbm+c+LxWhcTmiHe8bvbgNWbeNXKuHGZV/u3WU7+y2YI1ZsMmmr38byuyprXNfn7W7Pe/zHJkMyuc36zUXWanlEzb9cbx17lzZ5swYYLNmDHDypX7t1o0pOuRMi3+/vvvLvdD4cKFXf+vyL5eoU499VSXMEQ1art27bLSpUvbTTfdFPU9M2fOdJkdx4wZE/a6+qipVi20uaSotqxNmzauVi0rIwsHAABAOjspb+IjVINTjtSUeX78zaxi8djzURPDyFqs7P8GYYFkPv9wwGzfgaSvFz8p8e/U5YnNKBU4ImNSLdY999xj48ePt2nTprkuRbEUL148GCht3brVrr766rgqZPTYvn27TZw40bWWi/T666+71nN16tQJe121al4CEFHzx2bNmrnArWHDhpbVpbrJYlpSdpbatWu7TC96qI1qaMaVvXv3uirXYsWKuapVpc6MHCth/fr1dsUVV7jOgcok07NnT9cBMZQOSlXHKiqvUqWKyzoTafjw4VapUiVXvaoDY/78+em45gAAIKvreUViyvpXp5r99JvZC18nNiO8K5kcacqgqIyJStSxdqvZpKWJtWZXnXkkMOv9vtmMHxIzKaovmZ5P+8Gszb+ZGeXN6WZzVyem3n/3f2YtnzPrflliU0dkTLpmVv+u0aNHuz5cyu+ghzIlet58802XFl+1ZCrbsmVL6969u51++ukx56vgSxkc165d69LfK39EtWrVrH379mHlVHumJpFKkx+pQoUKri+b9zjttNOCtW/lImrxsiJfa8i0AwYNGmRVq1Z1Ub2qK6+55hqXjvOMM85wB4iytGjnqp2rqmDVQVBpO0UdCxWMqap19uzZrnNh27ZtLWfO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pnR+RCpoHDKkjQMHDgQKFCgQ6NatW2Dv3r1Ry2zdulVnxcCbb74Z2Lx5s3suS5YsCYwYMSKwdOnSwI8//hh46KGHAnny5An88ssvwfdWrFgxULBgwcBTTz0V+Omnn9xj/vz5bn6TJ0928/vjjz9c2W+++ca9vnbt2pjL+/jjjweKFi0a+OijjwI//PBD4M4773Tzv+aaa4JlLrroIrdOPXv2DKxcudI9RPMeP368+/9ff/0VKFGiRKB169aBZcuWBT777LPAKaec4sp8++23UT97wYIFgezZswdGjx4dWLduXWDx4sWBYcOGha3rs88+G/aeOnXqBPr16xd8rvkXK1Ys8OqrrwZWrVrltpnmuWLFCjdd664y5cqVC3zwwQfu9dtvvz1w0kknBX7//few7bR9+3b3vGPHjoHmzZuHfe7VV18daNu2bczt2KVLl0CZMmUCX3zxRWD58uWBdu3aBYoUKZJkXzRs2DAwbdo0V+aCCy4InHvuucF5aL20fp7TTjstMHjw4ODz/fv3B4oXLx544403AhnBpk2bAjly5Ag888wzbj98//33geHDh7tjRaZMmRJ455133HGn/dKhQ4fAySefHNi1a5ebPmHChEDevHmD5UXHlV7zyujY7Nq1a9gxo+NZn7N69erAwIEDA9myZQseszt37nTT//vf/7p9oP2l7Rx6nN59992BunXruuNTyz1p0qTAp59+GnM9ta9Dvy/e8VKvXj33f32O5j99+vTgdK1T/vz5A6+88krgROZ997WNtQ3ffffdQL58+cKW+/XXX3fb8eeffw7MmTMn0KhRo8Dll1/uph08eDDw4YcfuvXX91Pnpx07driHyum7ptf0UFl9B3Ue6d27tzsudE649NJLA40bN072fDRr1iz3vdcx59E5TdtY21rn2uR+6rLCsZrSOkYun+i41vEdusw6d2pZtT+fe+45t92//vrrVJ+TvXUYMGBAoEaNGknOpxdeeGHAL/qt0HGr/aLlvOqqqwK1atUKHDp0KGwdqlWr5va91vOGG25w20fXADJ37ly3P5988kk3Xb9thQsXDhQqVCjm58azz73fktq1a7vtrmsA/c5E/n7oc/UbpPXwjlntu8hzlWffvn1uOTVvvUffSb2m+et7pN9iXZfou3bmmWcGbr311uB79Zuq37IZM2a48kOGDAnkzp3blZcrrrjC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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## create a waterfall chart. Thanks for the great module provided by the waterfall_ax team! Very handy\n", "from waterfall_ax import WaterfallChart\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "import matplotlib.pyplot as plt\n", "\n", "# Cumulative values\n", "step_names = ['Start: grid supply only', 'savings PV', 'battery: savings supply','and grid fees']\n", "step_values = [start, with_pv, with_pv-saving_supply, with_pv-saving_supply-saving_grid]\n", "last_step_label = 'Total'\n", "color_kwargs = {\n", " 'c_bar_pos': 'lightgreen',\n", " 'c_bar_neg': 'orange',\n", " 'c_bar_start': 'grey',\n", " 'c_bar_end': 'grey',\n", " 'c_text_pos': 'black', \n", " 'c_text_neg': 'black',\n", " 'c_text_start': 'black',\n", " 'c_text_end': 'black'\n", "}\n", "# Plot\n", "waterfall = WaterfallChart(step_values, step_names=step_names, last_step_label=last_step_label)\n", "wf_ax = waterfall.plot_waterfall(title='Reducing power costs with own PV and battery', color_kwargs=color_kwargs)\n", "plt.ylabel('yearly costs in EUR')\n", "wf_ax.get_yaxis().set_visible(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "... that was it! No rocket science, as you see." ] } ], "metadata": { "kernelspec": { "display_name": "my_env", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.9" } }, "nbformat": 4, "nbformat_minor": 2 }